package controller;

/**
 * 
 * IController class
 * 
 * Interface for the controller class.
 *
 */

public interface IController {

	/**
	 * evaluateKeyPressed
	 * 
	 * passes the keycode into the current state for evaluation
	 * 
	 * @param keyCode
	 */
	public void evaluateKeyPressed(int keyCode);

	/**
	 * evaluateKeyReleased
	 * 
	 * tells the state that a particular key has been released
	 * 
	 * @param keyCode
	 */
	public void evaluateKeyReleased(int keyCode);

	/**
	 * setState
	 * 
	 * changes the current state the game is in based upon the passed in
	 * parameter
	 * 
	 * @param newState
	 */
	public void setState(IState newState);

	/**
	 * update
	 * 
	 * checks for victory conditions, tells the model to update, and checks for
	 * death conditions
	 */
	public void update();
}
